package Crt;
import ModelLager.*;

/**
 * Write a description of class OrdreCtr here.
 * 
 * @author (Gruppe 5) 
 * @version (a version number or a date)
 */
public class OrdreCtr
{
    private OrdreContainer oCon;
    private VareCtr vCtr;
    private KundeCtr kCtr;
    
    
    /**
     * OrdreCtr Constructor
     *
     */
    public OrdreCtr()
    {
        oCon = OrdreContainer.getInstance();
        vCtr = new VareCtr();
        kCtr = new KundeCtr();
    }
    
    /**
     * Method opretOrdre
     *
     * @param id A parameter
     * 
     * Methoden laver en ny Ordre og tilføjer den til
     * OrdreContainer.
     */
    public void opretOrdre(int id)
    {
        Ordre newOrdre = new Ordre(id);
        oCon.addOrdre(newOrdre);
    }
    
    /**
     * Method findKunde
     *
     * @param id A parameter
     * @return The return value
     * 
     * Retunerer den fundne kunde ved hjælp af den
     * angivne id.
     */
    public Kunde findKunde(int id)
    {
        return kCtr.findKunde(id);
    }
    
    /**
     * Method addKunde
     *
     * @param ordreID A parameter
     * @param kundeID A parameter
     * @param navn A parameter
     * @param adresse A parameter
     * @param telefon A parameter
     * @param postNr A parameter
     * @param by A parameter
     * @param mail A parameter
     * 
     * Methoden bruger ordreID til at finden den ordre
     * kunden skal tilføjes, og der efter laver en ny kunde
     * og tilføjer en den til den fundne Ordre.
     */
    public void addKunde(int ordreID, int kundeID, String navn, String adresse, String telefon, int postNr, String by, String mail)
    {
        Ordre o = oCon.findOrdre(ordreID);
        kCtr.createKunde(kundeID, navn, adresse, telefon, postNr, by, mail);
        o.createKunde(kundeID, navn, adresse, telefon, postNr, by, mail);
    }
    
    /**
     * Method findVare
     *
     * @param id A parameter
     * @return The return value
     * 
     * Retunere den fundne vare ved hjælpe at id;
     */
    public Vare findVare(int id)
    {
        return vCtr.findVare(id);
    }
    
    /**
     * Method addDelOrdre
     *
     * @param ordreID A parameter
     * @param vareID A parameter
     * @param antal A parameter
     * 
     * Methoden bruger ordreID til at finde den ordre delordre
     * skal tiføjes til og bruger vareID til at finde den vare 
     * der skal tilføjes til delordre, hvor efter et antal bliver
     * angivet hvor så delordre bliver tilføjet til ordren.
     */
    public void addDelOrdre(int ordreID, int vareID, int antal)
    {
        Ordre o = oCon.findOrdre(ordreID);
        Vare v = findVare(vareID);
        o.createDelOrdre(v, antal);
    }
}
